'''
一、列表list
 特点：
 1、list中的每个元素的类型可以不唯一
 2、list中的元素可以重复
 3、list是可变的，元素可以修改
 4、list是有序的
'''
# 定义：
list = [1, 2, 2, 3, 3, 3, 4, 'a', 'b', 'c', 'd', 1.1, 1.2, True, False]
print(list, type(list))

# list 常见操作：
# 通过下标(索引值 index)查找元素
print(list[7])  # 打印输出a

# 切片
# [起始位置:结束位置:步长]
print(list[7:11])  # 打印'a', 'b', 'c', 'd'
print(list[-4:])  # 右边数第四个遍历输出到最后
# 反转
print(list[::-1])  # 步长-1增长输出(实现列表元素反转)

# 修改元素
# 'a'=>'A'
list[7] = 'A'
print(list)  # [1, 2, 2, 3, 3, 3, 4, 'A', 'b', 'c', 'd', 1.1, 1.2, True, False]

# 增加元素(append(),insert())
list.append('last')
list.insert(6, 5.5)
print(list)

# 删除元素(remove(),del)
list.remove(5.5)  # 根据指定的值移除元素 只会移除一次
del list[6]  # 删除索引为6的值
print(list)

# 排序
list2 = [1, 5, 4, 2, 10, 3, 7, 6, 9, 8]
list2.sort(reverse=True)  # 降序 从大到小
print(list2)
list2.sort(reverse=False)  # 升序 从小到大
print(list2)

# 合并多个list
list3 = [1, 2, 3, 4, 5]
print(list + list2 + list3)  # +不会改变原有的list
# [1, 2, 2, 3, 3, 3, 'A', 'b', 'c', 'd', 1.1, 1.2, True, False, 'last', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5]
list2.extend(list3)  # 会对list2造成修改
print(list2)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5]

# 反转
list2.reverse()
print(list2)

# 统计元素出现的次数
print(list2.count(1))

# 清空列表
list2.clear()
print(list2)